package com.baicaoyuan.web.common;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

/**
 * 功能描述:
 *
 * @author 罗富祥
 *         创建时间： 2018/1/4
 *         版权：百草园电子商务
 */
public class StringUtils {

    public static Long objToLong(Object obj) {
        return Long.parseLong(obj.toString());
    }

    public static String listToString(List list, char separator) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < list.size(); i++) {
            sb.append(list.get(i)).append(separator);
        }
        return sb.toString().substring(0, sb.toString().length() - 1);
    }

    public static Boolean isNotNullAndGreater0(Long num) {
        return num != null && num > 0;
    }

    /**
     * 判断Long类型数据不存在或者等于0
     *
     * @param num
     * @return
     */
    public static Boolean isNullOrEquals0(Long num) {
        return num == null || num == 0;
    }

    /**
     * 判断Integer类型数据不存在
     *
     * @param num
     * @return
     */
    public static Boolean isNull(Integer num) {
        return num == null;
    }

    /**
     * 判断字符串是否为null或者空
     *
     * @param str
     * @return
     */
    public static Boolean isNullOrEmpty(String str) {
        return str == null || "".equals(str);
    }

    /**
     * 判断Timestamp是否为null或者空
     *
     * @param timestamp
     * @return
     */
    public static Boolean isNullOrEmpty(Timestamp timestamp) {
        return timestamp == null || "".equals(timestamp);
    }

    /**
     * 判断字符串是否不为null和不为空
     *
     * @param str
     * @return
     */
    public static Boolean isNotNullAndEmpty(String str) {
        return str != null && !"".equals(str);
    }

    /**
     * 判断Timestamp是否不为null和不为空
     *
     * @param timestamp
     * @return
     */
    public static Boolean isNotNullAndEmpty(Timestamp timestamp) {
        return timestamp != null && !"".equals(timestamp);
    }

    public static Boolean isNullOrEquals0(BigDecimal num) {
        return num == null || BigDecimal.ZERO.compareTo(num) == 0;
    }

    /**
     * 用户sql中like语句的条件构建
     *
     * @param str 条件
     * @return 如果str为空或者null，则返回‘%%’， 否则返回 '%'+ str +'%'
     */
    public static String plusPercent(String str) {
        return isNullOrEmpty(str) ? "%%" : "%" + str + "%";
    }
}
